var express = require('express');
var router = express.Router();
//getCode 返回一张图片，图片上验证码是随机的
const captcha = require("svg-captcha");


//引入连接池模块
const pool = require('../pool');
/* GET users listing. */
//1.用户注册接口
//接口地址：http://127.0.0.1:3000/users/reg
router.post('/reg', function (req, res, next) {
  //1.2验证各项数据是否为空(状态码不变）
  let obj = req.body;
  // console.log(obj);
  if (!obj.uname) {
    res.send({
      code: 401,
      msg: "用户名不能为空"
    });
    return;
  }
  console.log(obj);
  if (!obj.upwd) {
    res.send({
      code: 402,
      msg: "密码不能为空"
    });
    return;
  }
  if (!obj.phone) {
    res.send({
      code: 404,
      msg: "电话不能为空"
    });
    return;
  }
 

  //验证手机号码格式
  //如果不符合规则
  if (!/^1[3-9]\d{9}$/.test(obj.phone)) {
    res.send({
      code: 405,
      msg: "手机格式不对"
    })
    return;
  };
  //验证码格式看是否对
  pool.query('select * from hchw_user where uname=?', [obj.uname], (err, result) => {
    if (err) {
      next(err);
      return;
    }
    console.log(result);
    //结果是数组，如果是空数组，说明可以注册
    if (result.length === 0) {
      pool.query('insert into hchw_user set ?', [obj], (err, result) => {
        if (err) {
          //如果出现错误交给下一个中间件来处理
          next(err)
          //阻止往后执行
          return;
        };
        console.log(result);
        res.send({
          code: 200,
          msg: "注册成功"
        })
      });
    } else {
      res.send({
        code: 201,
        msg: "用户名已存在请换一个",
        results: result
      });
    }
  });
  // 执行SQL命令

  // res.send('注册成功');
});
//2.用户登录接口（post /login）
//接口地址：http://127.0.0.1:3000/users/login
//请求方法：post
router.post('/login', (req, res, next) => {
  //2.1获取post请求的数据
  let obj = req.body;
  console.log(obj);
  //2.2验证数据是否为空
  if (!obj.uname) {
    res.send({
      code: 401,
      msg: "用户名不能为空"
    });
    return;
  }
  if (!obj.upwd) {
    res.send({
      code: 402,
      msg: "密码不能为空"
    });
    return;
  }
  pool.query('select * from hchw_user where uname=? and upwd=?', [obj.uname, obj.upwd], (err, result) => {
    if (err) {
      next(err);
      return;
    }
    console.log(result);
    //结果是数组，如果是空数组，说明登录失败，否则登录成功
    if (result.length === 0) {
      res.send({
        code: 201,
        msg: "登录失败",
        results: result
      });
    } else {
      res.send({
        code: 200,
        msg: "登录成功",
        results: result
      });
    }

  })
  //2.3查询数据并执行SQL命令，到数据库中查询有没有用户名和密码同时匹配的数据




});


// 3.生成验证码
//接口地址：http://127.0.0.1:3000/users/getCode
//请求方法：get
router.get("/getCode", (req, res) => {
  let result = captcha.create();
  console.log(`正确答案: ` + result.text);
  //将result.text存入session对象,返回给客户端一个sessionid
  req.session.answer = result.text;
  //返回svg图片
  res.type("svg");
  res.send(result.data)
})
// 4.获取用户输入的验证码并判断验证码
//接口地址：http://127.0.0.1:3000/users/register?code=xxxx
//请求方法：get
router.get(`/register`, (req, res) => {
  //获取用户传入的验证码  /register？code=abcd0000000000000000000
  let ucode = req.query.code //用户输入的验证码
  let answer = req.session.answer //请求的正确验证码
  console.log(`ucode:${ucode} answer:${answer}`)
  if (ucode == answer) {
    res.send('SUCCESS');
  } else {
    res.send("Fall")
  }
})
module.exports = router;